﻿using System.Data;

namespace dados
{
    public class Produto : FrameworkBase
    {
        string sSqlCondicao = string.Empty;
        string sSql = string.Empty;

        public DataTable Pesquisar()
        {
            return Pesquisar(0);
        }

        public DataTable Pesquisar(string sCategoria)
        {
            sSqlCondicao = string.Empty;

            if (sCategoria == "Pronta Entrega")
            {
                sSql = @"select 'Link', PRODUTO.* 
                     from PRODUTO 
                     where PRODUTO.QUANT > 0 
                     AND PRODUTO.ATIVO = 'S' ";

            }
            else
            {
                sSql = @"select 'Link', PRODUTO.* 
                     from PRODUTO 
                     inner join CATEGORIA on CATEGORIA.Descricao = '" + sCategoria + @"' 
                     where PRODUTO.Categoria = Categoria.Codigo 
                     AND PRODUTO.ATIVO = 'S' ";
            }
            DataTable dtProduto = ExecutarQuery(sSql);

            return dtProduto;
        }

        public DataTable Pesquisar(CWProduto cwProduto)
        {
            sSqlCondicao = string.Empty;
            sSql = @"select 'Link', PRODUTO.* 
                     from PRODUTO ";

            if (cwProduto.Codigo > 0)
            {
                sSqlCondicao += " AND Codigo = " + cwProduto.Codigo;
            }

            if (!string.IsNullOrEmpty(cwProduto.CodigoNatura))
            {
                sSqlCondicao += " AND CodigoNatura like '%" + cwProduto.CodigoNatura + "%'";
            }

            if (!string.IsNullOrEmpty(cwProduto.Descricao))
            {
                sSqlCondicao += " AND Descricao like '%" + cwProduto.Descricao + "%'";
            }

            if (!string.IsNullOrEmpty(cwProduto.Texto))
            {
                sSqlCondicao += " AND Texto like '%" + cwProduto.Texto + "%'";
            }

            if (!string.IsNullOrEmpty(cwProduto.Categoria))
            {
                sSqlCondicao += " AND Categoria = '" + cwProduto.Categoria + "'";
            }

            if (sSqlCondicao.Length > 0)
                sSql += " where " + sSqlCondicao.Substring(5);

            DataTable dtProduto = ExecutarQuery(sSql);

            return dtProduto;
        }

        public DataTable Pesquisar(long nCodigo)
        {
            sSqlCondicao = string.Empty;

            sSql = @"select 'Link', PRODUTO.* 
                     from PRODUTO ";

            if (nCodigo > 0)
            {
                sSqlCondicao += " AND Codigo = " + nCodigo;
            }

            if (sSqlCondicao.Length > 0)
                sSql += " where " + sSqlCondicao.Substring(5);



            DataTable dtProduto = ExecutarQuery(sSql);

            return dtProduto;
        }

        public DataTable PesquisarCategorias()
        {
            sSqlCondicao = string.Empty;

            sSql = @"select distinct 'Link', Categoria 
                     from PRODUTO ";

            DataTable dt = ExecutarQuery(sSql);

            return dt;
        }

        public void Salvar(CWProduto cwProduto)
        {

            if (cwProduto.Codigo > 0)
            {
                sSql = "update PRODUTO set CODIGONATURA = '" + cwProduto.CodigoNatura + "'," +
                    " DESCRICAO = '" + cwProduto.Descricao + "'," +
                    " TEXTO = '" + cwProduto.Texto + "'," +
                    " QUANT = '" + cwProduto.Quantidade + "'," +
                    " VLUNITARIO = " + cwProduto.ValorUnitario + "," +
                    " CUSTO = " + cwProduto.ValorCusto + "," +
                    " CATEGORIA = " + cwProduto.Categoria + "," +
                    " CAMINHOIMAGEM = '" + cwProduto.CaminhoImagem + "'," +
                    " ATIVO = '" + cwProduto.Ativo + "'" +
                    " where Codigo = " + cwProduto.Codigo;
            }
            else
            {
                sSql = "insert into PRODUTO (CODIGONATURA, DESCRICAO, TEXTO, QUANT, VLUNITARIO, CUSTO, CATEGORIA, CAMINHOIMAGEM ) values (" +
                    " '" + cwProduto.CodigoNatura + "'," +
                    " '" + cwProduto.Descricao + "'," +
                    " '" + cwProduto.Texto + "'," +
                    " '" + cwProduto.Quantidade + "'," +
                    " " + cwProduto.ValorUnitario + "," +
                    " " + cwProduto.ValorCusto + "," +
                    " " + cwProduto.Categoria + "," +
                    " '" + cwProduto.CaminhoImagem + "')";
            }

            Executar(sSql);


        }

        public void Excluir(string sCodigo)
        {
            sSql = "delete from  PRODUTO where Codigo = " + sCodigo;
            Executar(sSql);
        }
    }


}

